using UniversalAdmin.Application.DTOs;

namespace UniversalAdmin.Application.Services;

public interface IMenuService
{
    Task<IEnumerable<MenuDto>> GetAllMenusAsync();
    Task<IEnumerable<MenuDto>> GetMenuTreeAsync();
    Task<MenuDto?> GetMenuByIdAsync(Guid id);
    Task<MenuDto> CreateMenuAsync(CreateMenuDto dto);
    Task<MenuDto?> UpdateMenuAsync(Guid id, UpdateMenuDto dto);
    Task<bool> DeleteMenuAsync(Guid id);
    Task<IEnumerable<MenuDto>> GetMenusByRoleAsync(Guid roleId);
    Task AssignMenusToRoleAsync(Guid roleId, List<Guid> menuIds);
} 